package com.coursehub.course.service;

import com.coursehub.course.entity.Chapter;

import java.util.List;
import java.util.Optional;

/**
 * 章节服务接口
 */
public interface ChapterService {
    
    /**
     * 创建章节
     */
    Chapter createChapter(Chapter chapter);
    
    /**
     * 根据ID获取章节
     */
    Optional<Chapter> getChapterById(String chapterId);
    
    /**
     * 获取所有章节
     */
    List<Chapter> getAllChapters();
    
    /**
     * 根据课程ID获取章节列表
     */
    List<Chapter> getChaptersByCourseId(String courseId);
    
    /**
     * 根据课程ID获取章节ID列表
     */
    List<String> getChapterIdsByCourseId(String courseId);
    
    /**
     * 更新章节信息
     */
    Chapter updateChapter(String chapterId, Chapter chapter);
    
    /**
     * 删除章节
     */
    void deleteChapter(String chapterId);
    
    /**
     * 根据章节名称搜索章节
     */
    List<Chapter> searchChaptersByName(String chapterName);
    
    /**
     * 检查章节是否存在
     */
    boolean existsByChapterId(String chapterId);
    
    /**
     * 验证章节是否属于指定课程
     */
    boolean validateChapterBelongsToCourse(String chapterId, String courseId);
    
    /**
     * 获取学生已学习的章节
     */
    List<Chapter> getLearnedChaptersByStudent(String userId, String courseId);
    
    /**
     * 标记章节为已完成状态
     */
    void markChapterAsFinished(String userId, String chapterId);
}